const express = require('express');
const session = require('express-session');
const md5 = require('md5');

// 本地数据文件
// const userData = require('../db/user.json');

const userModel = require('../db/models/userModel');

const router = express.Router();

router.use(session({
    secret: '0825',
    saveUninitialized: false,
    resave: false,
    cookie: {
        httpOnly: true,
        maxAge: 1000 * 60
    }
}))


router.get('/login', (req, res) => {
    // ejs
    res.render('./login.ejs');
})

// 登录接口
router.post('/login', (req, res) => {

    let { username, pwd } = req.body;

    // console.log(username);
    // let result =userData.find(item=>item.username===username&&item.pwd===pwd);
    // 有此用户
    // if(result){
    //     req.session.username = username;
    //     res.redirect('/list');
    // }else{
    //     // res.json({msg:'用户密码错误'});
    //     res.redirect('/login');
    // }

    userModel.find({ username, pwd: md5(pwd) }, (err, data) => {
        if (err) throw err;
        // console.log(data);
        if (data.length) {
            // 存储session - 登录成功后 需要同步session
            req.session.username = username;
            // res.send("登录成功");
            res.json({
                msg: "登录成功",
                code: 200
            })
        } else {
            // res.send("抱歉，账号或密码错误");
            res.json({
                msg: "抱歉，账号或密码错误",
                code: 201
            })
        }
    });

})

// 注册页
router.get('/register', (req, res) => {
    res.render('./register.ejs');
})

// 注册路由接口
router.post('/register', (req, res) => {
    // 1. 得到前端发送来的username pwd
    // console.log(req.body);
    let { username, pwd } = req.body;

    // 密码加密模块 MD5
    // console.log(md5);

    // 验证数据库中是否包含此用户名
    userModel.find({ username }, (err, data) => {
        if (err) throw err;
        if (data.length) {
            res.json({
                msg: "此用户名已存在",
                code: 201
            })
        } else {
            // 2. 接收到的数据 存到数据库
            userModel.create({
                username: username,
                pwd: md5(pwd)
            }, (err, data) => {
                if (err) throw err;
                res.send({
                    msg: "注册成功！",
                    code: 200
                });
            })
        }
    })
})

router.get('/logout', (req, res) => {

    req.session.destroy(() => {
        res.render('logout');
    });

})


module.exports = router;